Box plot

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2026.01.04
조회수
7
버전
v1

Box plot

개요

박스 플롯(Box plot), 또는 상자 수염 그림(box-and-whisker plot)은 데이터의 분포를 시각적으로 표현하는 통계 그래프의 일종입니다. 이 그래프는 데이터의 중심 경향, 산포도, 왜도, 이상치(outlier) 등을 한눈에 파악할 수 있게 해주며, 특히 여러 그룹 간의 분포를 비교할 때 매우 유용합니다. 박스 플롯은 1977년 존 투키(John Tukey)에 의해 제안되어 이후 통계학, 데이터 과학, 사회과학, 의학 등 다양한 분야에서 널리 사용되고 있습니다.

박스 플롯은 다섯 가지 요약 통계량(five-number summary)을 기반으로 구성됩니다. 이 다섯 가지는 최솟값, 제1사분위수(Q1), 중앙값(Q2), 제3사분위수(Q3), 최댓값입니다. 이를 통해 데이터의 위치와 범위를 직관적으로 이해할 수 있습니다.


구성 요소

박스 플롯은 다음과 같은 주요 구성 요소로 이루어져 있습니다.

1. 박스(Box)

  • 박스는 제1사분위수(Q1, 하위 25%)에서 제3사분위수(Q3, 상위 25%)까지의 범위를 나타냅니다.
  • 이 범위를 사분위 범위(Interquartile Range, IQR)라고 하며, IQR = Q3 - Q1로 계산됩니다.
  • 박스 내부에는 중앙값(Median, Q2)을 나타내는 선이 그어집니다.

2. 수염(Whiskers)

  • 수염은 박스의 상단과 하단에서 뻗어나가는 선으로, 일반적으로 데이터의 정상 범위를 나타냅니다.
  • 수염의 끝점은 다음과 같이 결정됩니다:
  • 하위 수염 끝: Q1 - 1.5 × IQR보다 크거나 같은 최소값
  • 상위 수염 끝: Q3 + 1.5 × IQR보다 작거나 같은 최대값
  • 이 범위를 벗어나는 데이터는 이상치로 간주됩니다.

3. 이상치(Outliers)

  • 수염의 범위를 벗어나는 데이터 포인트를 이상치(outlier)라고 합니다.
  • 일반적으로 원이나 점으로 표시되며, 특이한 값이나 오류 데이터를 탐지하는 데 유용합니다.
  • 극단적인 이상치(extreme outliers)는 Q1 - 3×IQR 또는 Q3 + 3×IQR를 벗어나는 경우로, 별표(*) 등으로 구분할 수 있습니다.

박스 플롯의 장점과 한계

장점

  • 이상치 탐지: 데이터의 극단값을 쉽게 식별할 수 있습니다.
  • 비대칭성 확인: 중앙값이 박스 내에서 치우쳐 있는지 여부를 통해 왜도(skewness)를 추정할 수 있습니다.
  • 다중 그룹 비교: 여러 그룹의 분포를 나란히 비교할 수 있어, 그룹 간 차이를 직관적으로 파악할 수 있습니다.
  • 요약 정보 제공: 복잡한 데이터셋을 다섯 가지 요약 통계량으로 압축하여 시각화합니다.

한계

  • 데이터의 실제 분포 형태 생략: 히스토그램과 달리 데이터의 실제 밀도나 모양(예: 이중 모드)을 보여주지 않습니다.
  • 표본 크기 반영 부족: 박스 플롯만으로는 각 그룹의 데이터 수(표본 크기)를 알기 어렵습니다.
  • 이상치 기준의 주관성: 1.5×IQR 기준은 일반적이지만, 특정 상황에서는 너무 엄격하거나 느슨할 수 있습니다.

활용 예시

다음은 Python의 [matplotlib](/doc/%EA%B8%B0%EC%88%A0/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EC%8B%9C%EA%B0%81%ED%99%94%20%EB%8F%84%EA%B5%AC/matplotlib)[seaborn](/doc/%EA%B8%B0%EC%88%A0/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EC%8B%9C%EA%B0%81%ED%99%94%20%EB%8F%84%EA%B5%AC/seaborn) 라이브러리를 사용해 박스 플롯을 그리는 예제 코드입니다.

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

# 샘플 데이터 생성
np.random.seed(42)
data = np.random.normal(loc=50, scale=10, size=100)
outliers = [85, 90, 100]  # 이상치 추가
data_with_outliers = np.concatenate([data, outliers])

# 박스 플롯 생성
plt.figure(figsize=(8, 6))
sns.boxplot(y=data_with_outliers)
plt.title("Box plot 예시")
plt.ylabel("값")
plt.show()

이 코드는 정규분포에서 생성된 데이터에 이상치를 추가한 후 박스 플롯으로 시각화합니다. 결과적으로 박스, 수염, 이상치 점들이 명확히 나타납니다.


관련 시각화 기법

  • 히스토그램(Histogram): 데이터의 빈도 분포를 막대 그래프로 표현합니다. 박스 플롯보다 세부적인 분포 형태를 보여줍니다.
  • 바이올린 플롯(Violin plot): 박스 플롯과 커널 밀도 추정을 결합한 그래프로, 분포의 밀도까지 시각화합니다.
  • 점 플롯(Dot plot): 각 데이터 포인트를 점으로 표시하여 실제 데이터 위치를 보여줍니다.

참고 자료

박스 플롯은 데이터 탐색적 분석(EDA)에서 핵심 도구로, 데이터의 구조를 빠르게 이해하고 의사결정을 지원하는 데 큰 역할을 합니다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?